# #爬取资源——获得美女图片(原代码)
# url='https://www.umeituku.com/tags/angelababy.htm'
# #发送请求
# import requests
# from lxml import etree

# headers={'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0'}
# resp=requests.get(url,headers=headers)
# resp.encoding='utf-8'
# # print(resp.text)
# e=etree.HTML(resp.text)
# img_url=e.xpath('//ul/li/a/img/@src')
# img_name=e.xpath('//ul/li/a/div[@class="ListTit"]/text()')

# #保存数据

# #获取图片
# for u,n in zip(img_url,img_name):
#     print(f"正在下载：{n}")
#     img_resp=requests.get(url,headers=headers)
# #以图片形式保存到文件夹
#     with open(f'img_f/{n}.jpg','wb')as f:
#         f.write(img_resp.content)




"""新代码解决了以下问题：
1.图片格式不支持查看：url路径不完整
2.图片名字不能有非法字符，否则不能作为图片名
 """

import requests
from lxml import etree
import os

url = 'https://www.umeituku.com/tags/angelababy.htm'
headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0'
}
resp = requests.get(url, headers=headers)
resp.encoding = 'utf-8'
e = etree.HTML(resp.text)
img_url = e.xpath('//ul/li/a/img/@src')
# 使用 img_name 作为图片文件名
img_name = e.xpath('//ul/li/a/div[@class="ListTit"]/text()')

# 创建图片保存目录
os.makedirs('img_f', exist_ok=True)

for u, n in zip(img_url, img_name):
    # 确保URL是完整的
    if u.startswith('/'):
        u = 'https://www.umeituku.com' + u
    # 请求图片
    img_resp = requests.get(u, headers=headers)
    # 获取图片的扩展名
    ext = os.path.splitext(u)[1]
    # 使用 img_name 和图片的扩展名作为文件名
    # 注意：需要确保 img_name 不包含非法字符，如 / \ : * ? " < > |
    # 以及最好去除首尾的空白字符
    filename = f"{n.strip().replace(' ', '_').replace('/', '_').replace('\\', '_').replace(':', '_').replace('*', '_').replace('?', '_').replace('"', '_').replace('<', '_').replace('>', '_').replace('|', '_')}{ext}"
    # 保存图片
    with open(f'img_f/{filename}', 'wb') as f:
        f.write(img_resp.content)
